우선 브라우저 window
object에 intersectionObserver가 있는지 판단.
monitorIntersections
에서 탐지
rootIsInTarget
, rootIsInDom
100ms throttle 걸린 _checkForIntersections
에서 target이 들어오는지 확인 후, IntersectionObserverEntry
를 생성하기 위해 연관 DOMRect
들을 넘김. Entry는 viewport에 들어온 target에 대한 정보를 담고 있는 구조
IntersectionObserverEntry
는 화면에 보이는 비율 등을 계산한 값을 object property에 넣어줌.
만들어진 entry는 queue_observationTarget
에 넣고 callback처리
utility성 함수로 ensureDOM
과 같은 함수가 있음. 오브젝트 구조(어떤 속성이 있는지)를 이용해서 type assertion을 함.
crossOriginRect???